home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1989 February
/
64er_Magazin_89-02_1989_Markt__Technik_de_Disk_1_of_2_Side_A.d64
/
sub dir 1.1
(
.txt
)
< prev
Wrap
Commodore BASIC
|
2022-10-26
|
5KB
|
258 lines
100 rem ******************
110 rem * *
120 rem * sub dir system *
130 rem * *
140 rem ******************
150 rem
160 rem (c) 1988 by
170 rem dirk jansen
180 rem
190 rem ver 1.1 - 21.07.88
200 rem ==================
210 :
220 print chr$(147)
230 print tab(13);"sub dir system"
240 print
250 print tab(13);"v1.1 21.07.88"
260 print
270 print tab(8);"(c) 1988 by dirk jansen"
280 print
290 print"========================================"
300 gosub 4000:rem * geraete nummern abfragen
340 print chr$(147)
350 print"***** sub dir system v 1.1 *****"
360 print
370 print"geraet:";u,"laufwerk: ";d$
380 print:print
390 print" 1 - sub dir system anlegen"
400 print
410 print" 2 - sub dir anlegen"
420 print
430 print" 3 - disk befehl"
440 print
450 print" 4 - inhaltsverzeichnis"
460 print
470 print" 5 - geraete nummen aendern"
480 print
490 print" 0 - programm ende"
500 print:print
510 input"ihre wahl";o
520 on o+1 gosub 1000,10000,20000,2000,3000,4000
530 goto 340
970 :
980 rem *** ende ***
990 :
1000 sys 64738
1970 :
1980 rem *** disk befehl ***
1990 :
2000 print
2010 poke 198,3
2020 poke 631,34
2030 poke 632,20
2040 poke 633,34
2050 a$=""
2060 input"befehl";a$
2070 open 15,u,15
2080 if a$="" then 2200
2090 print#15,a$
2200 print
2210 print"status: ";
2220 get#15,e$:if e$<>chr$(13) then print e$;:goto 2220
2230 close 15
2240 print:print:print"- taste druecken -"
2250 get a$:if a$="" then 2250
2260 return
2970 :
2980 rem *** inhaltsverzeichnis ***
2990 :
3000 print
3010 open 1,u,0,"$"+d$
3020 poke 781,1
3040 get#1,a$,a$
3050 get#1,a$,a$:if st = 64 then 3110
3060 : get#1,a$,b$:print chr$(157);asc(a$+chr$(0))+256*asc(b$+chr$(0));
3070 : get#1,a$:print a$;:if a$<>"" then 3070
3080 : print
3090 goto 3050
3110 close 1
3120 print:print:print"- taste druecken -"
3130 get a$:if a$="" then 3130
3140 return
3970 :
3980 rem *** geraete nummern aendern ***
3990 :
4000 print
4010 input"geraete nummer? 8[157][157][157]";u
4020 if u<8 or u>15 then 4010
4030 input"laufwerk ? 0[157][157][157]";d$
4040 if d$<>"0" and d$<>"1" then 4040
4050 return
9970 :
9980 rem *** system anlegen ***
9990 :
10000 open 15,u,15,"i"+d$
10010 input#15,e1,e2$,e3,e4
10020 if e1=0 then 10100
10030 print
10040 print"*** disk: ";e1;e2$;e3;e4;"***"
10050 print
10060 return
10100 open 2,u,2,"#"
10110 print#15,"u1 2 ";d$;" 18 1"
10112 for i=2 to 226 step 32
10120 : print#15,"b-p 2";i
10130 : get#2,t$
10150 : if t$<>"" then 10170
10160 next i
10162 print#15,"b-p 2 0"
10164 get#2,t$
10166 if t$="" then 10220
10170 : print
10180 : print"*** disk ist nicht leer ***"
10190 : print
10200 : input"disk loeschen(j/n)? n[157][157][157]";a$
10210 : if a$="n" then close 2:close 15:return
10220 : print:print"impressum schreiben"
10222 print#15,"b-p 2 00"
10230 print#2,chr$(0);chr$(255);
10240 for i=0 to 7
10242 : print#15,"b-p 2";i*32+2
10250 : print#2,chr$(195);chr$(18);chr$(0);
10260 : read a$
10270 : print#2,left$(a$+"[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]",16);
10280 : print#2,chr$(0);chr$(0);chr$(0);
10290 : print#2,"dirk";
10300 : print#2,chr$(0);chr$(0);
10310 : print#2,chr$(0);chr$(0);
10320 next i
10330 print#15,"u2 2 ";d$;" 18 01"
10340 print:print"root dir anlegen"
10350 close 2
10360 close 15
10370 n$="======root======":rem -name uebergeben
10380 gosub 30000:rem - dir anlegen
10470 open 15,u,15
10480 print:print"init disk"
10490 print#15,"i";d$
10500 print:print"validate disk"
10510 print#15,"v";d$
10520 close 15
10530 return
10662 print#15,"b-p 2 0"
10664 get#2,t$
10666 if t$<>"" then 10180
12000 data " sub dir system "
12010 data "(w) '88 d.jansen"
12020 data " "
12030 data "use disk command"
12040 data " &xxxxxx to "
12050 data " change dir "
12060 data " "
12070 data " don't validate "
19970 :
19980 rem *** dir anlegen ***
19990 :
20000 print
20010 n$="":input"dir name (max 15 zeicen)";n$
20020 if len(n$)>15 or len(n$)<1 then 20010
20030 n1$=n$
20040 if len(n$)<16 then n$="="+n$+"=":goto 20040
20050 n$=left$(n$,16)
21000 print:print"dir anlegen"
21010 gosub 30000:rem - dir anlegen
21900 restore
21910 for i=0 to 7
21920 : read a$
21930 next i
22000 print:print"umschalt befehl anlegen t:";t;" s:";s
22010 open 2,u,2,"&"+n1$+",u,w"
22020 print#2,chr$(0);chr$(5);:rem - startadresse
22030 print#2,chr$(35);:rem - anzahl bytes
22040 p=0
22050 for i=1 to 35
22060 : read a
22070 : if a=-1 then a=t
22080 : if a=-2 then a=s
22090 : p=p+a:if p>255 then p=p-255
22100 : print#2,chr$(a);
22110 next i
22120 p=p+5+35
22130 p=p-(255*int(p/256))
22140 print#2,chr$(p);
22150 close 2
23000 print:print"umschalten"
23010 open 15,u,15
23020 open 2,u,2,"#"
23030 print#15,"u1 2 ";d$;" 18 01"
23040 print#15,"b-p 2 0"
23050 get#2,t$,s$
23060 t=asc(t$+chr$(0))
23070 s=asc(s$+chr$(0))
23080 close 2
23090 print#15,"&"+n1$
23100 close 15
23900 restore
23910 for i=0 to 7
23920 : read a$
23930 next i
24000 print:print"rueckschalt befehl anlegen t:";t;" s:";s
24010 open 2,u,2,"&back,u,w"
24020 print#2,chr$(0);chr$(5);:rem - startadresse
24030 print#2,chr$(35);:rem - anzahl bytes
24040 p=0
24050 for i=1 to 35
24060 : read a
24070 : if a=-1 then a=t
24080 : if a=-2 then a=s
24090 : p=p+a:if p>255 then p=p-255
24100 : print#2,chr$(a);
24110 next i
24120 p=p+5+35
24130 p=p-(255*int(p/256))
24140 print#2,chr$(p);
24150 close 2
25000 print:print"rueckschalten"
25010 open 15,u,15
25020 print#15,"&back"
25030 close 15
25040 return
29970 :
29980 rem *** dir anlegen ***
29990 :
30000 open 15,u,15
30010 open 2,u,2,"#"
30020 print#15,"u1 2 ";d$;" 18 01"
30030 print#15,"b-p 2 0"
30040 get#2,t$
30050 t1=asc(t$+chr$(0))
30070 print#15,"b-a ";d$;" 18 00"
30080 input#15,a,a$,t,s
30090 print#15,"b-a ";d$;t;s
30100 print#15,"b-p 2 00"
30110 print#2,chr$(0);chr$(255);
30120 print#2,chr$(195);chr$(18);chr$(0);
30130 print#2,left$(n$+"[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]",16);
30140 print#2,chr$(0);chr$(0);chr$(0);
30150 print#2,"dir ";
30160 print#2,chr$(0);chr$(0);
30170 print#2,chr$(0);chr$(0);
30180 print#2,chr$(0);chr$(0);
30260 for i=34 to 253
30270 : print#2,chr$(0);
30280 next i
30300 print#15,"u2 2 ";d$;t;s
30310 if t1=18 then 30500
30320 : print#15,"u1 2 ";d$;" 18 01"
30330 : print#15,"b-p 2 0"
30340 : print#2,chr$(t);chr$(s);
30350 : print#15,"u2 2 ";d$;" 18 01"
30500 close 15
30510 close 2
30520 return
39970 :
39980 rem *** daten fuer & file ***
39990 :
40000 data169,18,133,8,169,1,133,9,169,128,133,1,165,1,48,252,169,-1,141,0,4
40010 data169,-2,141,1,4,169,144,133,1,165,1,48,252,96